import * as request from 'request';
import { workspace } from "vscode";

const url = workspace.getConfiguration('fund').get('url') || 'http://49.232.15.194:10211';

export interface Fund {
  _id: string;
  /** 基金代码 */
  code: string;
  /** 基金名称 */
  name: string;
  /** 基金类型 */
  type: string;
  /** 基金拼音 */
  pinyin: string;
  /** 基金拼音缩写 */
  acronym: string;
}

export interface FundRealTimeDate {
  /** 基金代码 */
  fundcode: string;
  /** 基金名称 */
  name: string;
  /** 截止日期 */
  jzrq: string;
  /** 单位净值 */
  dwjz: string;
  /** 当前净值 */
  gsz: string;
  /** 涨跌幅 */
  gszzl: string;
  /** 当前时间 */
  gztime: string;
}

/**
 * 查询基金列表
 * @param keyword 搜索关键字
 */
export function search(keyword: string): Promise<Fund[]> {
  return new Promise((resolve, reject) => {
    request.get(`${ url }/search?keyword=${ encodeURI(keyword) }`, { json: true }, (err, res) => {
      if (err) {
        console.log(err);
        return reject(err);
      }
      resolve(res.body.list);
    });
  });
}

/**
 * 查询基金当前状态
 * @param code 基金代码
 */
export function status(code: string): Promise<FundRealTimeDate> {
  return new Promise((resolve, reject) => {
    request.get(`${ url }/status?code=${ code }`, { json: true }, (err, res) => {
      if (err) {
        return reject(err);
      }
      resolve(res.body.info);
    });
  });
}